A content-addressable memory (CAM) is a type of computer memory used in certain very high speed search applications. Unlike standard computer memories (of the random access memory RAM type, in particular) for which the user application supplies a memory address and the RAM returns the data stored at that address, a CAM memory is designed so that the user application supplies a data word and the CAM searches throughout its memory to determine whether this word is stored therein. If the word is found, the CAM returns a list of one or more addresses where the word has been found.
Because a CAM memory is designed to search throughout its memory in a single operation by performing multiple operations in parallel, this memory is faster than RAM in all search applications. However, unlike the RAM which has simple storage cells (the single function of a RAM is to store data), the CAM must also handle the comparison function. Each individual memory cell must thus have its own comparison circuit to detect a match between a bit stored in the cell and a proposed input (or query) bit. The physical size of a CAM cell (particularly in terms of surface units occupied) is therefore greater than that of a RAM cell.
FIG. 1 shows a conventional NOR-type CAM cell. Such a cell comprises ten transistors and typically occupies approximately 300 surface units (300 F2). A CAM memory or this type is said to be binary in that it uses the systematic search for data containing only 1s and 0s.
Also known is a ternary CAM memory allowing for a third state of correspondence called “X” or “any” for one or more bits in the stored data word, so that flexibility can be added to the search. FIG. 2 shows a conventional NOR-type ternary CAM cell. This cell consists of 16 transistors and typically occupies 500 surface units.
Although a conventional CAM cell occupies a large surface area, it is known that there is a recurrent need in the field for miniaturization of semiconductor devices. Moreover, merely because of the large number of transistors and the need to supply a power supply line in the CAM memory array, a conventional CAM memory has the drawback of consuming a lot of power.